package com.icangya.service;

import com.alibaba.fastjson.JSONObject;
import com.icangya.domain.BadUserDO;
import com.icangya.domain.ProxyLevel;
import com.icangya.domain.User;
import com.icangya.domain.PayBean;
import java.util.List;

public interface IFootUserService {

    /**
     *
     *用户个人信息
     * @param openId
     * @return
     */
    JSONObject selectUserByOpnId(String openId);


    /**
     *
     *用户个人信息
     * @param openId
     * @return
     */
    Object[]  getNickName(String openId);

    /**
     * 获取用户信息
     * @param openId
     * @return
     */
//    JSONObject getUserMessage(String openId);

//    /**
//     * 查询代理团队的客服二维码
//     * @param proxyId
//     * @return
//     */
//    AgentImage getAgentImg(long proxyId);

    User getByOpenId(String openId);

    /**
     * 注册用户
     *
     * @param user
     * @return
     */

    User addUser(User user);
    /**
     * 更新用户
     *
     * @param userDO
     * @return
     */
    User updateUser(User userDO);

    /**
     * 获得登录的用户详情
     * @param uid
     * @return
     */
    User getUserByUid(long uid);

    /**
     * 获得上级信息数据
     *
     * @param uid
     * @return
     */
    ProxyLevel getProxyLevel(Long uid);

    /**
     * 保存ProxyDO
     *
     * @param proxyLevel
     * @return
     */
    ProxyLevel saveProxyLevel(ProxyLevel proxyLevel);

    /**
     *
     *提取佣金
     * @param openId  用户id
     * @return
     */
    Boolean cash(String openId, double money);

    /**
     * 用户充值广告金
     * @param openId  用户id
     * @param money  充值的金额数
     * @return
     */
    Boolean rechargeRecord(String openId, Double money);

    /**
     * 查询代理数量
     * @param uid
     * @return
     */
    JSONObject getProxyNum(long uid);


    /**
     * 查询所有用户
     * @return
     */
    List<User> getAllUser();

    /**
     * 查询所有用户信息
     * @return
     */
    List<User> findAllUser();

    //拉黑投诉用户
    void  saveBadUser(BadUserDO badUserDO);

    /**
     *用户今天还能提现的次数
     * @param openId
     * @return
     */
    double cashMoneyCount(String openId);

    //返佣
    void addAgencyComm(String openId, double amountMoney);


    //获取配置支付的信息记录
    PayBean getPaybeanByStatus();


}
